Reduced multicubic database interpolation method for optical measurement of diffractive microstructures

ABSTRACT

A reduced multicubic database interpolation method is provided. The interpolation method is designed to map a function and its associated argument into an interpolated value using a database of points. The database is searched to locate an interpolation cell that includes the function argument. The interpolation cell is used to transform the function argument to reflect translation of the interpolation cell to a unit cell. The interpolated value is then generated as a cubic function using the data points that correspond to vertices of the unit cell. All of the derivatives in the cubic function are simple and the interpolation accuracy order is higher than first-order.

PRIORITY CLAIM

[0001] The present application claims priority to U.S. Provisional Patent Application Serial No. 60/392,953, filed Jul. 1, 2002 and U.S. Provisional Patent Application Serial No. 60/426,602, filed Nov. 15, 2002. The disclosure of both of these documents is incorporated herein by reference.

TECHNICAL FIELD

[0002] The subject invention relates generally to optical methods for inspecting and analyzing semiconductor wafers and other samples. In particular, the subject invention relates to improvements in analysis of the measured optical signal characteristics from a sample to determine parameter values for that sample.

BACKGROUND OF THE INVENTION

[0003] As geometries continue to shrink, manufacturers have increasingly turned to optical techniques to perform non-destructive inspection and analysis of semiconductor wafers. Techniques of this type, known generally as optical metrology, operate by illuminating a sample with electromagnetic radiation and then detecting and analyzing the reflected energy. Scatterometry is a specific type of optical metrology that is used when the structural geometry of a subject creates diffraction (optical scattering) of the incoming probe beam. Scatterometry systems analyze diffraction to deduce details of the structures that cause the diffraction to occur. In general, optical metrology measures physical dimensions and/or material properties of structures on a wafer from the optical response of the wafer, that is, how the wafer changes light that illuminates it.

[0004] Various optical techniques have been used to perform optical scatterometry. These include broadband spectroscopy (U.S. Pat. Nos. 5,607,800; 5,867,276 and 5,963,329), spectral ellipsometry (U.S. Pat. No. 5,739,909) single-wavelength optical scattering (U.S. Pat. No. 5,889,593), and spectral and single-wavelength beam profile reflectance and beam profile ellipsometry (U.S. Pat. No. 6,429,943). Scatterometry, in these cases generally refers to optical responses in the form of diffraction orders produced by period structures, that is, gratings on the wafer. In addition it may be possible to employ any of these measurement technologies, e.g., single-wavelength laser BPR or BPE, to obtain critical dimension (CD) measurements on non periodic structures, such as isolated lines or isolated vias and mesas. The above cited patents and patent applications, along with PCT Application WO03/009063, U.S. application Ser. No. 2002/0158193, U.S. application Ser. No. 10/243245, filed Sep. 13, 2002, U.S. application Ser. No. 2001/0051856 A1, PCT Application WO 01/55669 and PCT Application WO 01/97280 are all incorporated herein by reference.

[0005] Metrology uses three classes of parameters and their relationships. Structures on the wafer have physical parameters, e.g., the thickness of a layer, the widths of a line structure at various heights (measured generally perpendicular to a face of the wafer, or the complex optical index of a material. Most scatterometry measurements are performed over a range of independent parameters. Examples independent parameters are wavelength (for spectroscopic systems) or angle of propagation. Much of the following is written as if wavelength is the independent parameter. The goal of metrology is to relate measurements to a model of what is on the wafer, where the model has parameters that in some sense reflect the physical parameters on the wafer. In some cases, model parameters represent exactly the physical parameters in question, or they may be related through some mathematical transformation, e.g., the physical widths of adjacent periodic lines and spaces may be modeled as a period and ratio.

[0006] Most scatterometry systems use a modeling approach to transform empirical data into tangible results. For this type of approach, a theoretical model is defined for each subject that will be analyzed. The theoretical model predicts the output (reflected) electromagnetic field that is generated when an incident field is applied to the subject. The theoretical model is parameterized and each parameter corresponds to a physical characteristic of the subject such as line width or layer thickness. A profile is a collection of line widths at various heights, and is thus a collection of parameters. A regression is performed in which the parameters are repeatedly perturbed and the model is repeatedly evaluated to minimize the differences between the modeled results and results that are empirically obtained. The differences are typically calculated over the range of the independent parameters, and then an average difference, such as a squared sum, is calculated as a single difference. Various norms or other techniques are suitable for collapsing the multiple differences into a single working difference. When the minimization reaches some stopping criterion, it is assumed that the model and its associated parameters accurately reflect the subject being analyzed. One such stopping criterion is that the difference reaches some predetermined level, e.g., that a goodness-of-fit criterion is exceeded. Another criterion is reached when the reduction of the difference from repeat to repeat becomes sufficiently small. Others are possible.

[0007] Evaluation of theoretical scatterometry models is a complex task, even for relatively simple subject. As subjects become more complex, e.g., having more parameters, the calculations can become extremely time-consuming. Even with high-speed processors, real-time evaluation of these calculations can be difficult. This is problematic in semiconductor manufacturing where it is often imperative to detect processes that are not operating correctly. As the semiconductor industry moves towards integrated metrology solutions (i.e., where metrology hardware is integrated directly with process hardware) the need for rapid evaluation becomes even more acute.

[0008] A number of approaches have been developed to overcome the calculation bottleneck associated with the analysis of scatterometry results. Many of these approaches have involved techniques for improving calculation throughput, such as parallel processing techniques. For example, co-pending application Ser. No. 09/906,290 filed Jul. 16, 2001 describes a system in which a master processor distributes scatterometry calculations among a group of slave processors. This can be done by as a function of wavelength, so that each slave processor evaluates the theoretical model for selected wavelengths. The other slave processors will carry out the same calculations at different wavelengths. Assuming there are five processors (one master and four slaves) and fifty wavelengths, each processor will perform ten such calculations per iteration. Once complete, the master processor combines the separate calculation and performs the best fit comparison to the empirical results. Based on this fit, the master processor will modify the parameters of the model (e.g. changing the widths or layer thickness) and distribute the calculations for the modified model to the slave processors. This sequence is repeated until a good fit is achieved.

[0009] This distributed processing approach can also be used with multiple angle of incidence information. In this situation, the calculations at each of the different angles of incidence can be distributed to the slave processor. Techniques of this type are an effective method for reducing the time required for scatterometry calculations. At the same time, the speedup provided by parallel processing is strictly dependent on the availability (and associated cost) of multiple processors. Amdahl's law also limits the amount of speedup available by parallel processing since serial portions of the program are not improved. At the present time, neither cost nor ultimate speed improvement is a serious limitation for parallel processing techniques. As the complexity of the geometry increases, however it becomes increasingly possible that computational complexity will outstrip the use of parallel techniques alone.

[0010] Another approach to rapidly evaluating scatterometry measurements is to use pre-computed libraries of predicted measurements. This type of approach is discussed in PCT application WO 99/45340, published Sep. 10, 1999 as well as the references cited therein. In this approach, a library of expected results is constructed by repeatedly evaluating the theoretical model for range of different parameters. When empirical measurements are obtained, the library is searched to find the best fit.

[0011] The use of libraries speeds the analysis process by allowing theoretical results to be computed once and reused many times. Of course, libraries are necessarily limited in their resolution and can contain only a finite number of theoretical results. This means that there are many cases where empirical measurements do not have exact library matches. In these cases, the use of a library represents an undesirable choice between speed and computational accuracy.

[0012] To overcome this limitation, U.S. Patent Application Publication No. 20020038196A1 (incorporated in this document by reference) describes a database method of analysis of empirical scatterometry measurements. The database method is similar to the library approach in that it relies on a stored set of pre-computed “reflectance characteristics.” (The reflectance characteristics could be simulated reflectance signal spectra, although in the preferred embodiment they are complex reflectance coefficients from which the reflectance signal can be computed without resorting to complex electromagnetic simulations). In this case, however an interpolation method is used in combination with the database-stored characteristics, making it possible to achieve measurement resolution and accuracy much better than the database sampling resolution. Both the database size and computation time are consequently greatly reduced relative to library-based methods.

[0013] A critical element of the database interpolation method is the interpolation algorithm itself. In the application just cited (i.e., U.S. Patent Application Publication No.20020038196A1), two preferred algorithms are disclosed: multilinear and multicubic. Multilinear interpolation is very fast, but has poor accuracy. Multicubic interpolation is much more accurate, but can be slow, especially when many parameters are being simultaneously measured. In practice, selection of between multilinear and multicubic method is done on a pragmatic basis depending on the degree of accuracy and speed required. Often, this choice is totally acceptable. This is true, for example, when the number of parameters is relatively small. Still, it is clear that interpolation methods that provide increased speed and accuracy would be an improvement over current techniques.

SUMMARY

[0014] An embodiment of the present invention provides an interpolation method for analyzing empirical scatterometry measurements. The interpolation method is a variant type of cubic interpolation algorithm that exhibits very good accuracy—comparable to multicubic—but which has much better runtime performance (e.g. for one particular example the runtime for a six-parameter measurement was reduced from 6.5 sec to 1.9 sec).

[0015] The objective of the interpolation algorithm is to estimate values of a reflectance characteristic function:

ƒ[x ₀ ,x ₁ , . . . , x _(N−1)]

[0016] wherein the x's are measurement parameters (e.g., film thicknesses, grating linewidths, etc.). The estimate is obtained from a set of pre-computed function values sampled on a rectangular grid in an N-dimensional “parameter space.” The reflectance characteristic function ƒ[x₀, x₁, . . . , x_(N−1)] is approximated as a linear combination of function values selected from the precomputed set, wherein the specific set of selected values and associated linear combination coefficients are determined from the parameter values x₀, x₁, . . . . The interpolation method requires (N+1)2^(N) sample points per interpolation (e.g.: 448 for six parameters). This is comparable to multilinear interpolation which uses 2^(N) sample points (e.g.: 64 sample points for six parameters) and much better than multicubic interpolation which requires 4^(N) sample points (e.g.: 4096 sample points for six parameters).

[0017] The essence of the improved method can be summarized as follows: The reflectance characteristic function ƒ[x₀,x₁, . . . ,x_(N−1)] is approximated as a polynomial function of x₀,x₁, . . . consisting of a linear combination of elemental monomial functions. The monomial terms include all of the multilinear monomials,

x ₀ ^(p0) x ₁ ^(p) ^(₁) . . .

[0018] wherein each of the exponents p₀, p₁, . . . is either 0 or 1. (There are 2^(N) such terms.) The monomials also include the multilinear terms multiplied by the square: of any one of the parameters,

(x₀ ^(p) ^(₀) x ₁ ^(p) ^(₁) . . . )x ₀ ²

(x₀ ^(p0) x ₁ ^(p) ^(₁) . . . )x ₁ ²

[0019] Including all such terms, the total number of monomials making up the polynomial interpolation function is: (N+1)2^(N), The same number of conditions is required to determine the polynomial coefficients. These conditions are determined by specifying the function values and its gradient at the corners of an N-dimensional box (a database “grid cell”) enclosing the interpolation point {x₀,x₁, . . . }. (If the interpolation point is outside of the database sampling range there will be no grid cell enclosing the interpolation point. In this case the grid cell nearest the interpolation point may be used to extrapolate the function outside the database range.) The gradient values may be obtained by either storing gradient information in the database or by applying a finite-difference derivative estimator to the database-sampled function values. In either case, the number of database quantities (function values and possible derivative values) required to determine the polynomial coefficients is (N+1)2^(N).

[0020] The reduced multicubic interpolation function is: ${f\left\lbrack {x_{0},x_{1},\ldots \quad,x_{N - 1}} \right\rbrack} = {{\sum\limits_{j_{0},j_{1},{\ldots \quad \in {\{{0,1}\}}}}{\left( {a_{j_{0},j_{1},\ldots} + {\sum\limits_{k \in {\{{0,1,\ldots \quad,{N - 1}}\}}}{b_{{k;j_{0}},j_{1},\ldots}x_{k}^{2}}}} \right)x_{0}^{j_{0}}x_{1}^{j_{1}}\quad \ldots \quad 0}} \leq x_{m} \leq 1}$

[0021] With the boundary constraints: ${{f\left\lbrack {j_{0},j_{1},\ldots} \right\rbrack} = f_{j_{0},j_{1},\ldots}};{{\frac{\partial}{\partial j_{k}}{f\left\lbrack {j_{0},j_{1},\ldots} \right\rbrack}} = {df}_{{k;j_{0}},j_{1},\ldots}};{j_{m} \in \left\{ {0,1} \right\}}$

[0022] The right-hand sides of the constraint equations are predetermined values. (Number of unknown a and b coefficients=number of constraints=(N+1)2^(N).) Implicit solution for the a and b coefficients in terms of interpolation basis functions (U and V): $\begin{matrix} {{f\left\lbrack {x_{0},x_{1},\ldots} \right\rbrack} = {{\sum\limits_{j_{0},j_{1},\ldots}{f_{{j_{0},j_{1},\ldots}\quad}{U_{{j_{0},j_{1},\ldots}\quad}\left\lbrack {x_{0},x_{1},\ldots} \right\rbrack}}} +}} \\ {{\sum\limits_{{k,j_{0},j_{1},\ldots}\quad}{{df}_{{{k;j_{0}},j_{1},\ldots}\quad}{V_{{{k;j_{0}},j_{1},\ldots}\quad}\left\lbrack {x_{0},x_{1},\ldots} \right\rbrack}}}} \end{matrix}$

[0023] The basis functions have the same functional form as ƒ and satisfy the defining conditions.

[0024] For x₀,x₁, . . . =0 or 1: $\begin{matrix} {{{U_{{j_{0},j_{1},\ldots}\quad}\left\lbrack {x_{0},x_{1},\ldots} \right\rbrack} = 0},{{{except}\quad {U_{{j_{0},j_{1},\ldots}\quad}\left\lbrack {j_{0},j_{1},\ldots} \right\rbrack}} = 1}} \\ {{\frac{\partial}{\partial x_{m}}{U_{{j_{0},j_{1},\ldots}\quad}\left\lbrack {x_{0},x_{1},\ldots} \right\rbrack}} = 0} \\ {{V_{{{k;j_{0}},j_{1},\ldots}\quad}\left\lbrack {x_{0},x_{1},\ldots} \right\rbrack} = 0} \\ {{{\frac{\partial}{\partial x_{m}}{V_{{{k;j_{0}},j_{1},\ldots}\quad}\left\lbrack {x_{0},x_{1},\ldots} \right\rbrack}} = 0},{{{except}\quad \frac{\partial}{\partial x_{k}}{V_{{{k;j_{0}},j_{1},\ldots}\quad}\left\lbrack {j_{0},j_{1},\ldots} \right\rbrack}} = 1}} \end{matrix}$

[0025] The following defining relations for U and V satisfy the above conditions:

U _(0,0, . . .) [x ₀ ,x ₁, . . . ]=(1−x ₀)(1−x ₁) . . . (1+x ₀(1−2x ₀)+x ₁(1−2x ₁)+ . . . )

U _(j) ₀ _(,j) ₁ _(, . . .) [x ₀ ,x ₁, . . . ]|_(j) _(m) _(→1−j) _(m) =U _(j) ₀ _(, j) ₁ _(, . . .) [x ₀ ,x ₁, . . . ]|_(x) _(m) _(→1−x) _(m)

V _(0;0,0, . . .) [x ₀ ,x ₁ , . . . ]=x ₀(1−x ₀)²(1−x ₁)(1−x ₂) . . .

V _(k;0,0, . . .) [x ₀ ,x ₁ , . . . ]=V _(0;0,0, . . .) [x ₀ ,x ₁, . . . ]|_(x) ₀ _(→x) _(k) _(,x) _(k) _(→x) ₀

m≠k: V _(k;j) ₀ _(,j) ₁ _(, . . .) [x ₀ ,x ₁, . . . ]|_(j) _(m) _(→1−j) _(m) =V _(k;j) ₀ _(,j) ₁ _(, . . .) [x ₀ ,x ₁, . . . ]|_(x) _(m) _(→1−x) _(m)

V _(k;j) ₀ _(,j) ₁ _(, . . .) [x ₀ ,x ₁, . . . ]|_(j) _(k) _(→1−j) _(k) =−V _(k;j) ₀ _(,j) ₁ _(, . . .) [x ₀ ,x ₁, . . . ]|_(x) _(k) _(→1−x) _(k)

[0026] Combining the above conditions, the following result is obtained:

U _(j) ₀ _(,j) ₁ _(, . . .) [x ₀ ,x ₁, . . . ]=(1−x′ ₀)(1−x′ ₁) . . . (1+x′ ₀(1−2x′ ₀)+x′ ₁(1−2x′ ₁)+. . . )

[0027] and:

V _(k;j) ₀ _(,j) ₁ _(, . . .) [x ₀ ,x ₁, . . . ]=(−1)^(j) ^(_(k)) x′ _(k)(1−x′ _(k))(1−x′ ₀)(1−x′ ₁)(1−x′ ₂) . . .

[0028] wherein: $x_{m}^{\prime} = \left\{ \begin{matrix} {x_{m},} & {j_{m} = 0} \\ {{1 - x_{m}},} & {j_{m} = 1} \end{matrix} \right.$

[0029] As noted above, the interpolation method dramatically reduces the number of values that must be used during the interpolation step associated with computing the reflectance characteristics of a sample. For example, the number of values necessary to perform this interpolation when applied to a database wherein each point is defined by six parameters is only about one-tenth of the number of values needed with the multicubic approach. This computational savings increases for higher parameter problems (e.g.: with a seven parameter problem, the number of values needed for the interpolation is only one-sixteenth of the values needed for the multicubic approach). Although number of values used for the interpolation is reduced, the interpolation method nonetheless produces interpolation results that fit all data points, with a smooth curve between data points and a smooth transition around data points. In addition to analyzing measured data, the interpolation method can also be used to reduce the complexity and time needed to generate a database.

BRIEF DESCRIPTION OF THE DRAWINGS

[0030]FIG. 1 is a diagram of a prior art optical metrology system.

[0031]FIG. 2 is a perspective drawing of a typical scatterometry subject.

[0032]FIG. 3 is a flowchart showing the steps associated with a representative embodiment of the interpolation method provided by the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0033] The present invention provides several related reduced multicubic interpolation methods. Each of these methods is specifically intended to be used during the analysis of empirical scatterometry measurements. At the same time, it should be appreciated that a diverse range of other applications are also possible, including digital terrain mapping and color interpolation for computer graphics.

[0034]FIG. 1 shows a scatterometer of a type suitable for use with the reduced multicubic interpolation method. As shown in FIG. 1, scatterometer 100 includes an illumination source 102 that creates a mono or polychrornatic probe beam. The probe beam is preferably focused by one or more lenses 104 to create an illumination spot on the surface of the subject under test 106. A second lens (or lenses) 108 transports the diffracted probe beam to a detector 110. Detector 110 captures the diffracted energy and produces corresponding output signals. A processor 112 analyzes the signals generated by detector 110 using a database 114.

[0035] As shown in FIG. 2, scatterometry subject 106 typically includes a scattering structure 202 formed on a substrate 204. For the specific example of FIG. 2, the scattering structure is a grating composed of a series of individual lines. In general, the scattering structure may be periodic (as in the case of FIG. 2) or isolated. Isolated structures include, for example individual lines, or individual vias. The scattering structure of FIG. 2 is uniform (i.e., exhibits translational symmetry) along the Y axis. For this reason, this particular scattering structure is considered to be two-dimensional. Three dimensional scattering structures are also possible both in isolation (e.g., a single via) or periodically (e.g., a pattern of vias). The scatting structure is covered by an incident medium that is typically air but may be vacuum, gas, liquid, or solid (such as an overlaying layer or layers). One or more layers may be positioned between the scattering structure and the substrate. Alternatively, more than one layer may have a scattering structure, as is described in U.S. Patent Application Publication Number: 20020158193 (incorporated in this document by reference). During analysis, a probe beam is directed at the scattering structure. For most applications, the probe beam intersects the scattering structure at a normal azimuthal angle—the propagation vector is in the plane perpendicular to the lines from which the scattering structure is formed. It is also possible to use a non-normal azimuthal angle. This is referred to as conical scattering.

[0036] The relationship between the incoming and diffracted probe beam is controlled by the optical response characteristics of subject 106. To analyze the empirical measurements made by scatterometer 100 (i.e., the empirical optical response characteristics) a modeling process is typically used. The modeling process is based on a parametric model of the particular subject being analyzed (e.g, Lifeng Li, “A modal analysis of lamellar diffraction gratings in conical mountings”, Journal of Modern Optics, 1993, Vol. 40, No. 4, 553-573). The model is evaluated to compute predicted or theoretical optical response characteristics for the subject. The theoretical and empirical optical response characteristics are compared to determine if the model matches the empirical results. The model is then perturbed (i.e., the parameters are varied) and re-evaluated until the theoretical results and empirical results match within a desired goodness of fit. At that point, the parametric model is assumed to match the subject being analyzed.

[0037] Database 114 is constructed to include a series of pre-computed theoretical optical response characteristics. Each of these theoretical optical response characteristics is stored in association with its corresponding modeling parameters to define an interpolation point within database 114. Typically, each stored optical response characteristic includes a series of complex reflectance coefficients or scattering matrices associated with different illumination wavelengths, incidence directions, and polarization states, but all associated with the same diffractive structure configuration (materials and geometry). The computational representation of the associated structure geometry (e.g., profile shape) is not required for subsequent measurement processes and need not be stored in the database.

[0038] Database 114 is necessarily limited to include a finite number of interpolation points. The reduced multicubic interpolation methods provided by the present invention provide a mechanism for accurately interpolating optical response characteristics that fall between interpolation points within database 114 (or in some cases are outside of the limits of database 114). This makes database 114 appear to have an infinite number of interpolation points without requiring that the theoretical model be reevaluated for each optical response characteristic that is not specifically associated with an existing interpolation point.

[0039] In this document, interpolation (including the reduced multicubic interpolation methods provided by the present invention) is described in terms of a function Y[X]. For scatterometry, Y[X] is the function that is used to generate theoretical optical response characteristics. The interpolation points in database 114 are evaluations of Y[X] stored in combination with the corresponding values of X. The output of Y[X] is typically a vector or matrix that typically includes (e.g., for the case of scatterometry) computed reflectance quantities such as complex reflectance corresponding to multiple wavelengths, incidence angles, and polarization states. The input to Y[X] is typically an N-dimensional, vector argument X=(X₁,X₂, . . . X_(N)) (For clarity square braces [ . . . ] are used as function argument delimiters and round braces ( . . . ) are reserved for grouping; vectors and matrices are represented in bold type).

[0040] In the preferred embodiment, Y[X] is sampled at the points of a rectangular grid on which each X_(j) takes on the discrete values

X_(j=X) _(j) ^((0),X) _(j) ^((1), . . . X) _(j) ^((M) ^(_(j)) ⁾; j=1 . . . N  (1)

[0041] (The X_(j) sampling values are sorted in increasing order: X_(j) ⁽⁰⁾<X_(j) ⁽¹⁾< . . . X_(j) ^((M) ^(_(j)) ⁾.)

[0042] Some interpolation algorithms require a specification of not just Y, but also some set of partial derivatives of Y at the grid points. In this document, the j-th partial derivative operator is denoted ∂_(j), and product notation is used to denote derivative operator composition as follows: $\begin{matrix} \begin{matrix} {{\partial_{j}^{k}{Y\left\lbrack \left( {X_{1},X_{2},{\ldots \quad X_{N}}} \right) \right\rbrack}} = {\frac{\partial^{k}}{\partial X_{j}^{k}}{Y\left\lbrack \left( {X_{1},X_{2},{\ldots \quad X_{N}}} \right) \right\rbrack}}} \\ {{\left( {\prod\limits_{{j = 1},2,\ldots}\partial_{j}^{k_{j}}} \right)Y} = {{\partial_{1}^{k_{1}}{\partial_{2}^{k_{2}}\quad \ldots}}\quad Y}} \end{matrix} & (2) \end{matrix}$

[0043] (Note: for k=0, ∂_(j) ^(k)Y=Y).

[0044] The grid sampling-point vectors are denoted as:

X^((m))=(X₁ ^((m) ^(₁) ⁾,X₂ ^((m) ^(₂) ⁾, . . . X_(N) ^((m) ^(_(N)) ⁾); m_(j)=0 . . . M _(j); j=1 . . . N  (3)

[0045] wherein m is a “grid index vector”, m=(m₁,m₂, . . . m_(N)). The interpolation domain is partitioned into N-dimensional, rectangular “grid cells” with cell vertices at the grid points. For a grid index vector m, “cell m” denotes a grid cell defined by the constraints X_(j) ^((m) ^(_(j)) ⁾≦X_(j)≦X_(j) ^((m) ^(_(j)) ⁺¹⁾(X^((m)) is the “base vertex” of cell m). Within cell m, Y[X] is approximated by an interpolation function Y₁ ^((m))[X]:

Y[X]≅Y ₁ ^((m)) [X]; X _(j) ^((m) ^(_(j)) ⁾ ≦X _(j) ≦X _(j) ^((m) ^(_(j)) ⁺¹⁾ ; m _(j)=0 . . . M _(j)−1; j=1 . . . N  (4)

[0046] The collection of cell-bounded interpolation functions Y₁ ^((m))[X] defines a global interpolation function Y₁[X] over the entire interpolation domain (X_(j) ⁽⁰⁾≦X_(j)≦X_(j) ^((M) ^(_(j)) ⁾).

[0047] The computation of Y₁ ^((m)) is simplified by applying a linear transformation to X in order to transform grid cell m into a unit cell with its base vertex at the origin. The transformed X argument, denoted x=(x₁,x₂, . . . x_(N)), is defined by $\begin{matrix} \begin{matrix} {{x_{j} = \frac{X_{j} - X_{j}^{(m_{j})}}{X_{j}^{({m_{j} + 1})} - X_{j}^{(m_{j})}}};} & {j = {1\quad \ldots \quad N}} \end{matrix} & (5) \end{matrix}$

[0048] The functions Y and Y₁ ^((m)) translate to transformed functions y and y₁,

y[x]=Y[X], y ₁ [x]=Y ₁ ^((m)) [Y]  (6)

[0049] The Y derivatives transform as follows,

∂_(j) y[x]=(X _(j) ^((m) ^(_(j)) ⁺¹⁾ −X _(j) ^((m) ^(_(j)) ⁾)∂_(j) Y[X]  (7)

[0050] (and similarly for Y₁).

[0051] The vertices of cell m are at X=X^((m+s)); wherein s is the integer vector s=(s₁,s₂, . . . s_(N)) with element values 0 or 1: s_(j)=0,1; j=1 . . . N. The Equation 5 transformation maps X=X^((m+s)) onto x=s; thus the problem is to find an interpolating function y₁[x] approximating y[x] within the interpolation cell 0≦x_(j)≦1(j=1 . . . N), given a sampling of y and (possibly) some set of its derivatives at the cell vertices x=s; s_(j)=0,1. (In some interpolation algorithms, finite-difference derivatives are employed using some external y points sampled outside of the interpolation cell. In this case it may be necessary to “pad” the data sampling range with points outside the interpolation range to cover these external points.)

[0052] Multilinear Interpolation

[0053] This section describes a prior art multilinear interpolation technique. This technique is presented because it provides a relatively simple example of the nomenclature and formalisms just described. The description of multilinear interpolation is also important in later sections which evaluate the performance of the interpolation methods provided by the present invention. Multilinear interpolation provides an interpolation function y₁[s] that matches the function being interpolated at each grid point of s:

y₁[s]=y[s]; s_(j)=0,1; j=1 . . . N  (8)

[0054] The interpolation function has the form: $\begin{matrix} {{y_{I}\lbrack x\rbrack} = {\sum\limits_{{{s:s_{j}} = 0},{1{({j = {1\quad \ldots \quad N}})}}}{{u_{s}\lbrack x\rbrack}{y\lbrack s\rbrack}}}} & (9) \end{matrix}$

[0055] The u_(s)[x] factors are “interpolation basis functions” defined by: $\begin{matrix} {{u_{s}\lbrack x\rbrack} = {\prod\limits_{j = {1\quad \ldots \quad N}}^{\quad}\left( {1 - x_{j}^{\prime}} \right)}} & (10) \end{matrix}$

[0056] in which x′_(j) is shorthand for: $\begin{matrix} {x_{j}^{\prime} = \left\{ \begin{matrix} {x_{j},} & {s_{j} = 0} \\ {{1 - x_{j}},} & {s_{j} = 1} \end{matrix} \right.} & (11) \end{matrix}$

[0057] Multicubic Interpolation

[0058] This section describes the prior art multicubic interpolation technique. This technique is presented (once again) as a relatively simple example of the nomenclature and formalisms used throughout this description. The description of multicubic interpolation is also important in later sections which evaluate the performance of the interpolation methods provided by the present invention. Like the multilinear interpolation function, the prior art multicubic interpolation function y₁ matches y at the grid points s. In addition, the first-order derivatives (∂₁y₁, ∂₂y₁, etc.), and mixed-first-order derivatives (∂₁∂₂y₁,∂₁∂₂∂₃y₁, etc.) of y₁ also match y at the grid points s: $\begin{matrix} {{{{\left( {\prod\limits_{j = {1\quad \ldots \quad N}}\partial_{j}^{k_{j}}} \right){y_{I}\lbrack s\rbrack}} = {\left( {\prod\limits_{j = {1\quad \ldots \quad N}}\partial_{j}^{k_{j}}} \right){y\lbrack s\rbrack}}};}{{k_{j} = 0},{1;{s_{j} = 0}},{1;{j = {1\quad \ldots \quad N}}}}} & (12) \end{matrix}$

[0059] The interpolation function is $\begin{matrix} {{y_{I}\lbrack x\rbrack} = {\sum\limits_{{{k:\quad k_{j}} = 0},{1{({j = {1\quad \ldots \quad N}})}}}{\sum\limits_{{{s:\quad s_{j}} = 0},{1{({j = {1\quad \ldots \quad N}})}}}{{u_{k,s}\lbrack x\rbrack}\left( {\prod\limits_{j = {1\quad \ldots \quad N}}\partial_{j}^{k_{j}}} \right){y\lbrack s\rbrack}}}}} & (13) \end{matrix}$

[0060] wherein k=(k₁,k₂, . . . k_(N)). The interpolation basis functions, u_(k,s)[x] are defined by $\begin{matrix} {{u_{k,s}\lbrack x\rbrack} = {\prod\limits_{j = {1\quad \ldots \quad N}}{\left( {- 1} \right)^{k_{j}s_{j}}{f_{k_{j}}\left\lbrack x_{j}^{\prime} \right\rbrack}}}} & (14) \\ {{in}\quad {which}} & \quad \\ {{f_{k_{j}}\left\lbrack x_{j} \right\rbrack} = \left\{ \begin{matrix} {{\left( {1 - x_{j}} \right)^{2}\left( {1 + {2x_{j}}} \right)},} & {k_{j} = 0} \\ {{\left( {1 - x_{j}} \right)^{2}x_{j}},} & {k_{j} = 1} \end{matrix} \right.} & (15) \\ {{and}\quad x_{j}^{\prime}\quad {is}\quad {defined}\quad {{as}:}} & \quad \\ {x_{j}^{\prime} = \left\{ {\begin{matrix} {x_{j},} & {s_{j} = 0} \\ {{1 - x_{j}},} & {s_{j} = 1} \end{matrix}.} \right.} & \quad \end{matrix}$

[0061] Reduced-Cubic Interpolation with Exact Derivatives

[0062] As provided by the present invention, reduced-cubic interpolation matches y₁ and its simple derivatives to y at the grid points s (in this document, the term simple derivative refers to derivatives that are first order and are not mixed-partial derivatives—e.g., ∂₁y₁ and ∂₂y₁ but not ∂₁∂₂y₁ or ∂₁ ²y₁):

y₁[s]=y[s], ∂_(i)y₁[s]=∂_(i)y[s]; s_(j)=0,1; i,j=1 . . . N  (16)

[0063] The interpolation function is: $\begin{matrix} {{y_{I}\lbrack x\rbrack} = {\sum\limits_{{{s:\quad s_{j}} = 0},{1{({j = {1\quad \ldots \quad N}})}}}\left( {{{u_{s}\lbrack x\rbrack}{y\lbrack s\rbrack}} + {\sum\limits_{i = {1\quad \ldots \quad N}}{{v_{i,s}\lbrack x\rbrack}{\partial_{i}{y\lbrack s\rbrack}}}}} \right)}} & (17) \end{matrix}$

[0064] The interpolation basis functions, u_(s)[x] and v_(i,s)[x], are defined by: $\begin{matrix} \begin{matrix} {{u_{s}\lbrack x\rbrack} = {\left( {\prod\limits_{j = {1\quad \ldots \quad N}}\left( {1 - x_{j}^{\prime}} \right)} \right)\left( {1 + {\sum\limits_{j = {1\quad \ldots \quad N}}{x_{j}^{\prime}\left( {1 - {2\quad x_{j}^{\prime}}} \right)}}} \right)}} \\ {{v_{i,s}\lbrack x\rbrack} = {\left( {- 1} \right)^{S_{i}}\left( {\prod\limits_{j = {1\quad \ldots \quad N}}\left( {1 - x_{j}^{\prime}} \right)} \right){x_{i}^{\prime}\left( {1 - x_{i}^{\prime}} \right)}}} \\ {{and}\quad x_{j}^{\prime}\quad {is}\quad {defined}\quad {{as}:}} \\ {x_{j}^{\prime} = \left\{ {\begin{matrix} {x_{j},} & {s_{j} = 0} \\ {{1 - x_{j}},} & {s_{j} = 1} \end{matrix}.} \right.} \end{matrix} & (18) \end{matrix}$

[0065] As an example, consider the one dimensional case (i.e., N=1). For this case, the interpolation function is:

y ₁ [x]=u ₀ [x]y[0]+v _(1,0) [x]∂y[0]+u ₁ [x]y[1]+v _(1,1) [x]∂y[1]

[0066] and the interpolation basis functions are:

u₀[x]=(1−3x₁ ²+2x₁ ³)u₁[x]=(x₁ ²)(3−2x ₁)v_(1,0)[x]=(1−x₁)²x₁v_(1,1)[x]=(−1)(x₁)²(1−x₁)

[0067] which gives:

y ₁ [x]=(1−3x ₁ ²+2x ₁ ³)y[0]+x ₁ ²(3−2x ₁)y[1]+x ₁)(1−x ₁)² ∂y[0]−x ₁ ²)1−x ₁)∂y[1]

[0068] Similarly, for the two dimensional case (i.e., N=2), the interpolation function is: $\begin{matrix} {{y_{I}\left\lbrack {x_{1},x_{2}} \right\rbrack} = {\sum\limits_{s_{1},{s_{2} = 0},1}\left( {{{u_{s_{1},s_{2}}\left\lbrack {x_{1},x_{2}} \right\rbrack}{y\left\lbrack {s_{1},s_{2}} \right\rbrack}} +} \right.}} \\ \left. {{{v_{1,s_{1},s_{2}}\left\lbrack {x_{1},x_{2}} \right\rbrack}{\partial_{1}{y\left\lbrack {s_{1},s_{2}} \right\rbrack}}} + {{v_{2,s_{1},s_{2}}\left\lbrack {x_{1},x_{2}} \right\rbrack}{\partial_{2}{y\left\lbrack {s_{1},s_{2}} \right\rbrack}}}} \right) \end{matrix}$

[0069] or:

u_(0,0)[x₁,x₂]y[0,0]+v_(1,0,0[x) ₁,x₂]∂₁y[0,0]+v_(2,0,0)[x₁,x₂]∂₂y[0,0]+u_(0,1)[x₁,x₂]y[0,1]+v_(1,0,1)[x₁, x₂]∂₁y[0,1]+v_(2,0,1)[x₁,x₂]∂₂y[0,1]+u_(1,0)[x₁ ,x ₂]y[1,0]+v_(1,1,0)[x₁,x₂]∂₁y[1,0]+v_(2,1,0)[x₁, x₂]∂₂y[1,0]+u_(1,1)[x₁,x₂]y[1,1]+v_(1,1,1)[x₁,x₂]

[0070] ∂₁y[1,1]+v_(2,1,1)[x₁,x₂]∂₂y[1,1]

[0071] and the interpolation basis functions are:

u _(s) ₁ _(,s) ₂ _(,) [x ₁ ,x ₂]=(1−x′ ₁)(1−x′ ₂)(1+x′ ₁(1−2x′ ₁)x′ ₂(1−2x′ ₂))

[0072] and:

v _(i,s) ₁ _(,s) ₂ [x ₁ ,x ₂]=(−1)^(s) ^(_(i)) (1−x′ ₁)(1−x′ ₂)x′ _(i)(1−x′ _(i))

[0073] which expand to:

u _(0,0) [x ₁ ,x ₂]=(1−x ₁)(1−x ₂)(1+x ₁(1−2x ₁)x ₂(1−2x ₂))

u _(0,1) [x ₁ ,x ₂]=(1−x ₁)(x ₂(1+x ₁(1−2x ₁)(1−x ₂)(2x ₂−1))

u _(1,0) [x ₁ ,x ₂ ]=x ₁(1−x ₂)(1+(1−x ₁)(2x ₁−1)x ₂(1−2x ₂))

u _(1,1) [x ₁ , x ₂ ]=x ₁ x ₂(1+(1−x ₁)(2x ₁−1)(1−x ₂)(2x ₂−1))

[0074] and:

v _(1,0,0) [x ₁ ,x ₂]=(1−x ₁)(1−x ₂)x ₁(1−x ₁)

v _(1,0,1) [x ₁ ,x ₂]=(1−x ₁)(x ₂ x ₁(1−x ₁)

v _(1,1,0) [x ₁ ,x ₂ ]=−x ₁(1−x ₂)(1−x ₁)x ₁

v _(1,1,1) [x ₁ ,x ₂ ]=−x ₁ x ₂(1−x ₁)x ₁

v _(2,0,0) [x ₁ ,x ₂]=(1−x ₁)(1−x ₂)(x ₂(1−x ₂)

v _(2,0,1) [x ₁ ,x ₂]=−(1−x ₁)x ₂(1−x ₂)(x ₂

v _(2,1,0) [x ₁ ,x ₂ ]=x ₁(1−x ₂)x ₂(1− ₂)

v _(2,1,1) [x ₁ ,x ₂ ]=−x ₁ x ₂(1−x ₂)x ₂

[0075] As described previously, the reduced multicubic interpolation is typically used to interpolate a function Y[X] where X (in the scatterometry case) is typically a vector or matrix that includes computed reflectance quantities such as complex reflectance corresponding to multiple wavelengths, incidence angles, and polarization states. As shown in FIG. 3, interpolation of X begins by locating an interpolation cell m in which X is included (see step 302). The interpolation cell m is N-dimensional and includes X in each dimension (i.e., X_(j) ^((m) ^(_(j)) ⁾≦X_(j)≦X_(j) ^((m) ^(_(j)) ⁺¹⁾;m_(j)=0 . . . M_(j)−1; j=1 . . . N).

[0076] In step 304, the interpolation argument X is mapped into a transformed argument x. The transformation is equivalent to moving the interpolation cell m to a unit cell with its base vertex at the origin. The transformed X argument, denoted x=(x₁,x₂ . . . x_(N)), is defined by: $\begin{matrix} {{x_{j} = \frac{X_{j} - X_{j}^{(m_{j})}}{X_{j}^{({m_{j} + 1})} - X_{j}^{(m_{j})}}};} & {j = {1\quad \ldots \quad N}} \end{matrix}$

[0077] Once X has been transformed, the problem of interpolating Y becomes a problem of interpolating a function y within the unit cell. In step 306, the values for y at each vertex of the unit cell are retrieved from the database. For the one dimensional case described above, this means that y[0] and y[1] are retrieved. For the two dimensional case, four y values would be retrieved: y[0,0], y[0,1], y[1,0] and y[1,1].

[0078] In step 308, first order derivatives are obtained for y at each vertex. For the one dimensional case described above, this means obtaining ∂y[0] and ∂y[1]. Some implementations store the first derivatives as part of the interpolation database. In these cases, obtaining the first order derivatives is performed by database lookup. In other implementations, the first order derivatives are not stored and must be generated on-the-fly. Typically, this will involve a numerical method for estimating derivatives using they at each vertex of the unit cell as well as nearby y values (e.g., y[−1] and y[2] for the one dimensional case).

[0079] In step 310, the interpolation function is evaluated using the y values and their associated first order derivatives.

[0080] Reduced-Cubic Interpolation With Finite-Difference Derivatives

[0081] In practice, the derivative terms ∂_(i)y[s] in Equations 16 and 17 may not be readily available and must be evaluated by finite differencing. In these cases, the present invention provides a finite difference approach to reduced-cubic interpolation. For this approach, the gird-sampled function values y[s] are used for derivative estimation. Assuming that the sampling grid is uniform in each dimension (i.e., X_(j) ^((m) ^(_(j)) ⁺¹⁾−X_(j) ^((m) ^(_(j)) ⁾ is the same for all m_(j)=0 . . . M_(j)−1), a simple centered finite differencing approximation can be used: $\begin{matrix} {{\partial_{i}{y\lbrack s\rbrack}} \cong {\frac{1}{2}\left( {{y\left\lbrack {s + e_{i}} \right\rbrack} - {y\left\lbrack {s - e_{i}} \right\rbrack}} \right)}} & (19) \end{matrix}$

[0082] wherein e_(i) is the unit vector: $\begin{matrix} \begin{matrix} {{e_{i} = \left( {e_{i,1},e_{i,2},\ldots \quad,e_{i,N}} \right)};} & {e_{i,j} = \left\{ {\begin{matrix} {1,} & {i = j} \\ {0,} & {i \neq j} \end{matrix};} \right.} & {i,{j = {1\quad \ldots \quad N}}} \end{matrix} & (20) \end{matrix}$

[0083] If grid cell m is at the boundary of the data sampling range (i.e., m_(i)=0 or m_(i)=M_(i)−1 for some i=1 . . . N), then one of the terms y[s±e_(i)] in Equation 19 will be outside the sampling range. In this case a one-sided derivative estimator may be used: $\begin{matrix} {{\partial_{i}{y\lbrack s\rbrack}} \cong {\pm \left( {{{- \frac{1}{2}}{y\left\lbrack {s \pm {2e_{i}}} \right\rbrack}} + {2{y\left\lbrack {s \pm e_{i}} \right\rbrack}} - {\frac{3}{2}{y\lbrack s\rbrack}}} \right)}} & (21) \end{matrix}$

[0084] However, Equation 21 is less accurate than Equation 19, so the data sampling range should preferably be “padded” with data points external to the interpolation range to avoid the need for one-sided derivative estimators. (The padded sampling range should be defined such that for each grid point X^((m)) in the interpolation range, all points X^((m±e) ^(_(i)) ⁾ for i=1 . . . N are sampled.)

[0085] A higher-order derivative estimator may be used to improve interpolation accuracy:

∂_(i) y[s]≅⅔(y[s+e _(i) ]−y[s−e _(i)])−{fraction (1/12)}(y[s+2e _(i) ]−y[s−2e _(i)])  (22)

[0086] For grid cells at or near the sampling boundary, higher-order, asymmetric derivative estimators such as the following may be employed (but at the expense of compromised accuracy), $\begin{matrix} {{\partial_{i}{y\lbrack s\rbrack}} \cong {\pm \begin{pmatrix} {{{- \frac{1}{4}}{y\left\lbrack {s \mp e_{i}} \right\rbrack}} - {\frac{5}{6}{y\lbrack s\rbrack}}} \\ {{{+ \frac{3}{2}}{y\left\lbrack {s \pm e_{i}} \right\rbrack}} - {\frac{1}{2}{y\left\lbrack {s \pm {2e_{i}}} \right\rbrack}} + {\frac{1}{12}{y\left\lbrack {s \pm {3e_{i}}} \right\rbrack}}} \end{pmatrix}}} & (23) \\ {{\partial_{i}{y\lbrack s\rbrack}} \cong {\pm \left( {{{- \frac{1}{3}}{y\left\lbrack {s \mp e_{i}} \right\rbrack}} - {\frac{1}{2}{y\lbrack s\rbrack}} + {y\left\lbrack {s \pm e_{i}} \right\rbrack} - {\frac{1}{6}{y\left\lbrack {s \pm {2e_{i}}} \right\rbrack}}} \right)}} & (24) \\ {{\partial_{i}{y\lbrack s\rbrack}} \cong {\pm \begin{pmatrix} {{{- \frac{25}{12}}{y\lbrack s\rbrack}} + {4{y\left\lbrack {s \pm e_{i}} \right\rbrack}}} \\ {{{- 3}{y\left\lbrack {s \pm {2e_{i}}} \right\rbrack}} + {\frac{4}{3}{y\left\lbrack {s \pm {3e_{i}}} \right\rbrack}} - {\frac{1}{4}{y\left\lbrack {s \pm {4e_{i}}} \right\rbrack}}} \end{pmatrix}}} & (25) \\ {{\partial_{i}{y\lbrack s\rbrack}} \cong {\pm \left( {{{- \frac{11}{6}}{y\lbrack s\rbrack}} + {3{y\left\lbrack {s \pm e_{i}} \right\rbrack}} - {\frac{3}{2}{y\left\lbrack {s \pm {2e_{i}}} \right\rbrack}} + {\frac{1}{3}{y\left\lbrack {s \pm {3e_{i}}} \right\rbrack}}} \right)}} & (26) \end{matrix}$

[0087] The need for these asymmetric derivative estimators can be avoided by padding the sampling range such that for each grid point X^((m)) in the interpolation range, all points X^((m±e) ^(_(i)) ⁾ and X^((m±2e) ^(_(i)) ⁾ for i=1 . . . N are sampled.

[0088] Reduced-Cubic Interpolation With Point Matching

[0089] With this method, the function matching conditions are similar to Equations 16 except that finite differences are substituted for the derivative terms: $\begin{matrix} \begin{matrix} {{{y_{I}\lbrack s\rbrack} = {y\lbrack s\rbrack}},} \\ {{{\frac{1}{2}\left( {{y_{I}\left\lbrack {s + e_{i}} \right\rbrack} - {y_{I}\left\lbrack {s - e_{i}} \right\rbrack}} \right)} = {\frac{1}{2}\left( {{y\left\lbrack {s + e_{i}} \right\rbrack} - {y\left\lbrack {s - e_{i}} \right\rbrack}} \right)}};} \\ \begin{matrix} {{s_{j} = 0},{1;}} & {i,{j = {1\quad \ldots \quad N}}} \end{matrix} \end{matrix} & (27) \end{matrix}$

[0090] The interpolation function is: $\begin{matrix} {{y_{I}\lbrack x\rbrack} = {\sum\limits_{{{s:\quad s_{j}} = 0},{1{({{j = 1},{\ldots \quad N}})}}}\left( {{{u_{s}\lbrack x\rbrack}{y\lbrack s\rbrack}} + {\sum\limits_{i = {1\quad \ldots \quad N}}{{v_{i,s}\lbrack x\rbrack}\frac{1}{2}\left( {{y\left\lbrack {s + e_{i}} \right\rbrack} - {y\left\lbrack {s - e_{i}} \right\rbrack}} \right)}}} \right)}} & (28) \end{matrix}$

[0091] The interpolation basis functions, u_(s)[x] and v_(i,s)[x], are defined by: $\begin{matrix} \begin{matrix} {{u_{s}\lbrack x\rbrack} = {\left( {\prod\limits_{j = {1\quad \ldots \quad N}}\left( {1 - x_{j}^{\prime}} \right)} \right)\left( {1 + {\frac{1}{3}{\sum\limits_{j = {1\quad \ldots \quad N}}{x_{j}^{\prime}\left( {1 - {2x_{j}^{\prime}}} \right)}}}} \right)}} \\ {{v_{i,s}\lbrack x\rbrack} = {\frac{1}{3}\left( {- 1} \right)^{S_{i}}\left( {\prod\limits_{j = {1\quad \ldots \quad N}}\left( {1 - x_{j}^{\prime}} \right)} \right){x_{i}^{\prime}\left( {2 - x_{i}^{\prime}} \right)}}} \\ {{and}\quad x_{j}^{\prime}\quad {is}\quad {defined}\quad {as}\text{:}} \\ {x_{j}^{\prime} = \left\{ {\begin{matrix} {x_{j},} & {s_{j} = 0} \\ {{1 - x_{j}},} & {s_{j} = 1} \end{matrix}.} \right.} \end{matrix} & (29) \end{matrix}$

[0092] If grid cell m is at the boundary of the data sampling range, Equation 28 is not applicable because it uses y data points outside the sampling range. In this case, the interpolation function may be defined by simply extrapolating from the nearest interior grid cell. However, if more than one of the X_(j) coordinates is at the sampling limit the extrapolated function may not actually fit all the boundary points; and in any case, accuracy will be compromised in the boundary cells. Thus the data sampling range should preferably be padded to avoid the need for extrapolation.

[0093] Implementation Approach

[0094] The primary difficulty encountered in implementing the above algorithms is in translating the multidimensional array notation into conventional programming language syntax. For example, the data samples Y[X^((m))] could be represented in Fortran by multidimensional array elements Ysample (m(1),m(2), . . . m(N)), wherein m(j)=m_(j). (If Y is a vector or matrix, the Ysample elements could be pointers to Y data structures.) However, this approach is very constraining because the number of array dimensions (N) must be a compile-time constant and cannot exceed seven (due to an inherent Fortran limitation). In C++, multidimensional arrays are represented by nested pointer indirection, e.g., Ysample [m[0]][m[1]] . . . [m[N−1]], wherein m(j)=m_(j+1). But this approach is also impractical because the number of dimensions is predetermined by the Ysample data type and the multiple pointer indirections are computationally inefficient.

[0095] A more practical approach is to represent all multidimensional arrays computationally as one-dimensional arrays, using a Fortran-style memory layout, and perform the array indexing operations manually. For example, the datum Y[X^((m))] would be represented computationally as

Y[X^((m)]=Y sample[m)_index]  (30)

[0096] wherein m_index is a scalar array index, which is a linear function of m:

m_index=offset+stride[0]*m[0]+stride[1]*m[1]+ . . . stride[N−1]*m[N−1]  (31)

m(j)=m_(j+1)  (32)

[0097] The program logic, as well as the data structures, can be adapted for variable N. For example, following is a multidimensional array initialization routine using a conventional C++ array representation, $\begin{matrix} \begin{matrix} {{for}\quad \left( {{{m\left\lbrack {N - 1} \right\rbrack} = {{extent}\quad\left\lbrack {N - 1} \right\rbrack}};{{--{m\quad\left\lbrack {N - 1} \right\rbrack}}>=0};} \right)} \\ \cdots \\ {{for}\quad \left( {{{m\lbrack 1\rbrack} = {{extent}\quad\lbrack 1\rbrack}};{{--{m\lbrack 1\rbrack}}>=0};} \right)} \\ {{for}\quad \left( {{{m\lbrack 0\rbrack} = {{extent}\quad\lbrack 0\rbrack}};{{--{m\lbrack 0\rbrack}}>=0};} \right)} \\ {\quad {{{Y\quad {{{sample}{\quad \quad}\left\lbrack {m\lbrack 0\rbrack} \right\rbrack}\quad\left\lbrack {m\lbrack 1\rbrack} \right\rbrack}\quad {\ldots \quad\left\lbrack {m\left\lbrack {N - 1} \right\rbrack} \right\rbrack}} = \ldots}\quad;}\quad} \end{matrix} & (33) \end{matrix}$

[0098] (Following Fortran nomenclature, the “extent” array represents the dimension extents.) This code structure is not applicable to variable N, but with the Equation 30 representation the multidimensional iteration can be implemented as follows for variable N, bool done = false; int m_index = offset; for (int i = 0; i < N; ++i) { if (extent [i] == 0) { done = true; break; } m[i] = extent[i]−1; m_index += stride[i]*m[i]; } while (!done) } Ysample[m_index] = ...; done = true; for (int i = 0; i < N; ++i) { if (--m[i] >= 0) { m_index -= stride[i] done = false; break; } m[i] extent[i]-1; m_index += stride[i]*m[i]; } }

[0099] Comparative Computational Performance

[0100] In each of the interpolation algorithms the interpolation function y₁[x] is represented as a linear combination of the grid-sampled y values and (possibly) derivatives ∂_(i)y, wherein the linear coefficients are the x-dependent interpolation basis functions. Typically, y is a large data structure and the computational overhead associated with calculating the basis functions (Equation 10, 14, 18, or 29) is dominated by the computation of the linear combination (Equation 9, 13, 17, or 28). In this case the computation runtime is approximately proportional to the number of summation terms in the linear combination. For multilinear interpolation (Equation 9), the number of summation terms is 2^(N). For full multicubic interpolation (Equation 14) the number is 4^(N), and for reduced-cubic interpolation (Equation 17) it is (1+N)2^(N). Thus, for large N the reduced-cubic interpolation has a very substantial efficiency advantage over full multicubic interpolation.

[0101] The reduced-cubic interpolation algorithm with point matching (Equation 28) has (1+2N)2^(N) summation terms, as written. However, there are only (1+N)2^(N) distinct y sample values appearing in Equation 28, so in practice this equation can be reformulated so that it also has (1+N)2^(N) terms. This same condition also applies to Equation 17 with substitution of finite-difference derivatives, Equation 19. If the higher-order derivative estimator, Equation 22, is used in Equation 17, then the number of y samples per interpolation is (1+2N)2^(N).

[0102] Continuity and Smoothness

[0103] Multilinear interpolation yields a global interpolation function Y₁[X] that is continuous across grid cell boundaries, but which is not generally smooth (i.e., continuously differentiable). With full, multicubic interpolation, Y₁[X] is globally continuous and smooth. The reduced-cubic interpolation function is globally continuous. It is not generally smooth across grid cell boundaries, although it is smooth at the grid points X^((m)). The same condition holds when finite-difference derivatives are used, although in this case the derivatives ∂_(i)Y₁ will not exactly match ∂_(i)Y at the grid points. Reduced-cubic interpolation with point matching yields an interpolation function that is globally continuous but is not generally globally smooth (even at the grid points).

[0104] Interpolation Accuracy

[0105] In characterizing interpolation accuracy, it is useful to consider a function y[x] represented by a Taylor series near x=0, $\begin{matrix} {{y\lbrack x\rbrack} = {\sum\limits_{{p:\quad p_{j}} = {0\quad \ldots \quad \infty \quad {({j = {1\quad \ldots \quad N}})}}}\left( {\left( {\prod\limits_{j = {1\quad \ldots \quad N}}{\frac{1}{p_{j}!}\partial_{j}^{p_{j}}}} \right){y\lbrack 0\rbrack}\quad {\prod\limits_{j = {1\quad \ldots \quad N}}\left( x_{j} \right)^{p_{j}}}} \right)}} & (35) \end{matrix}$

[0106] wherein p=(p₁,p₂, . . . p_(N)) and 0=(0,0, . . . 0). Each monomial term Π_(j)(x_(j))^(p) ^(_(j)) in Equation 35 has an associated “monomial order” Σp defined by $\begin{matrix} {{\Sigma \quad p} = {\sum\limits_{j = {1\quad \ldots \quad N}}p_{j}}} & (36) \end{matrix}$

[0107] “Interpolation accuracy order” is defined as the largest integer n such that any monomial of order n or less has zero contribution to the interpolation error:

y₁[x]−y[x].

[0108] The accuracy order is related to the scaling relationship between the interpolation error and the grid sampling density. Suppose that the interpolation sampling interval sizes are all proportional to a common scaling factor ε:

X _(j) ^((m) ^(_(j)) ⁺¹⁾ −X _(j) ^((m) ^(_(j)) ⁾=εΔ_(j) ^((m) ^(_(j)) ⁾; m_(j)=0 . . . M _(j)−1; j=1 . . . N  (37)

[0109] Then, based on Equations 7 and 37, each ∂_(j) term in Equation 35 carries with it an implicit factor of ε, and each monomial term Π_(j)(x_(j))^(p) ^(_(j)) has an implicit factor of ε^(Σp) multiplying it. Thus, the lowest power of ε appearing in the interpolation error y₁[x]−y[x] (represented as a Taylor series in ε) will be ε^(n+1), wherein n is the interpolation accuracy order.

[0110] Multilinear interpolation (Equation 9) has accuracy order one. Multicubic interpolation (Equation 13) and reduced-cubic interpolation (Equation 17) both have accuracy order three. If the finite-difference approximation of either Equation 19 or 21 is employed in Equation 17 the accuracy order is reduced to two; however any of the higher-order derivative estimators, Equations 22-26, preserves order-three accuracy. Reduced-cubic interpolation with point matching also has order-three accuracy.

[0111] Following are lowest-order approximations for the interpolation error, for each interpolation algorithm.

[0112] Multilinear interpolation, Equations 9, 10: $\begin{matrix} {{{y_{I}\lbrack x\rbrack} - {y\lbrack x\rbrack}} \cong {\frac{1}{2}{\sum\limits_{i = {1\quad \ldots \quad N}}{{\partial_{i}^{2}{y\lbrack 0\rbrack}}\quad {x_{i}\left( {1 - x_{i}} \right)}}}}} & (37) \end{matrix}$

[0113] Multicubic interpolation, Equations 13, 14: $\begin{matrix} {{{y_{I}\lbrack x\rbrack} - {y\lbrack x\rbrack}} \cong {{- \frac{1}{24}}{\sum\limits_{i = {1\quad \ldots \quad N}}{{\partial_{i}^{4}{y\lbrack 0\rbrack}}\quad \left( x_{i} \right)^{2}\left( {1 - x_{i}} \right)^{2}}}}} & (38) \end{matrix}$

[0114] Reduced-cubic interpolation, Equations 17, 18: $\begin{matrix} \begin{matrix} {{{y_{I}\lbrack x\rbrack} - {y\lbrack x\rbrack}} \cong {{{- \frac{1}{24}}{\sum\limits_{i = {1\quad \ldots \quad N}}{{\partial_{i}^{4}{y\lbrack 0\rbrack}}\quad \left( x_{i} \right)^{2}\left( {1 - x_{i}} \right)^{2}}}} -}} \\ {{\frac{1}{4}{\sum\limits_{j = {2\quad \ldots \quad N}}{\sum\limits_{i = {{1\quad \ldots \quad j} - 1}}{{\partial_{i}^{2}{\partial_{j}^{2}{y\lbrack 0\rbrack}}}\quad {x_{i}\left( {1 - x_{i}} \right)}{x_{j}\left( {1 - x_{j}} \right)}}}}}} \end{matrix} & (39) \end{matrix}$

[0115] Equations 17, 18 with the finite-difference derivative, Equation 19, substituted in Equation 17: $\begin{matrix} {{{y_{I}\lbrack x\rbrack} - {y\lbrack x\rbrack}} \cong {\frac{1}{6}{\sum\limits_{i = {1\quad \ldots \quad N}}{{\partial_{i}^{3}{y\lbrack 0\rbrack}}\quad {x_{i}\left( {1 - x_{i}} \right)}\left( {1 - {2x_{i}}} \right)}}}} & (40) \end{matrix}$

[0116] Equations 17, 18 with a higher-order finite-difference derivative, Equation 22: same as Equation 40.

[0117] Reduced-cubic interpolation with point matching, Equations 28, 29: $\begin{matrix} \begin{matrix} {{{y_{I}\lbrack x\rbrack} - {y\lbrack x\rbrack}} \cong {{{- \frac{1}{24}}{\sum\limits_{i = {1\quad \ldots \quad N}}{{\partial_{i}^{4}{y\lbrack 0\rbrack}}\quad \left( {1 + x_{i}} \right){x_{i}\left( {1 - x_{i}} \right)}\left( {2 - x_{i}} \right)}}} -}} \\ {{\frac{1}{4}{\sum\limits_{j = {2\quad \ldots \quad N}}{\sum\limits_{i = {{1\quad \ldots \quad j} - 1}}{{\partial_{i}^{2}{\partial_{j}^{2}{y\lbrack 0\rbrack}}}\quad {x_{i}\left( {1 - x_{i}} \right)}{x_{j}\left( {1 - x_{j}} \right)}}}}}} \end{matrix} & (42) \end{matrix}$

[0118] [Note: Equations 40 and 42 have a similar form; but the factor (x_(i))²(1−x_(i))² multiplying ∂_(i) ⁴y[0] in Equation 40 takes on a maximum value of $\frac{1}{16}$

[0119] over the unit interval 0≦x_(i)≦1, whereas the corresponding factor (1+x_(i))x_(i)(1−x_(i))(2−x_(i)) in Equation 42 takes on a maximum value of $\frac{9}{16}.$

[0120] Thus, the accuracy of the point-matching method is an order of magnitude worse than the method employing accurate derivatives.]

[0121] The above error estimates do not consider the case where asymmetric derivative estimators (Equations 21, 23-26) are used. However, it is evident from the following lowest-order estimates of the derivative estimators that a significant accuracy penalty is incurred by using asymmetric estimators: $\begin{matrix} {{{Equation}\quad (19)}:} & \quad \\ {{{\frac{1}{2}\left( {{y\left\lbrack {s + e_{i}} \right\rbrack} - {y\left\lbrack {s - e_{i}} \right\rbrack}} \right)} - {\partial_{i}{y\lbrack s\rbrack}}} \cong {\frac{1}{6}{\partial_{i}^{3}{y\lbrack s\rbrack}}}} & (43) \\ {{{Equation}\quad (21)}:} & \quad \\ {{{\pm \left( {{{- \frac{1}{2}}{y\left\lbrack {s \pm {2e_{i}}} \right\rbrack}} + {2{y\left\lbrack {s \pm e_{i}} \right\rbrack}} - {\frac{3}{2}{y\lbrack s\rbrack}}} \right)} - {\partial_{i}{y\lbrack s\rbrack}}} \cong {{- \frac{1}{3}}{\partial_{i}^{3}{y\lbrack s\rbrack}}}} & (44) \\ {{{Equation}\quad (22)}:} & \quad \\ {{{\frac{2}{3}\left( {{y\left\lbrack {s + e_{i}} \right\rbrack} - {y\left\lbrack {s - e_{i}} \right\rbrack}} \right)} - {\frac{1}{12}\left( {{y\left\lbrack {s + {2e_{i}}} \right\rbrack} - {y\left\lbrack {s - {2e_{i}}} \right\rbrack}} \right)} - {\partial_{i}{y\lbrack s\rbrack}}} \cong {{- \frac{1}{30}}{\partial_{i}^{5}{y\lbrack s\rbrack}}}} & (45) \\ {{{Equation}\quad (23)}:} & \quad \\ {{{\pm \left( {{{- \frac{1}{4}}{y\left\lbrack {s \mp e_{i}} \right\rbrack}} - {\frac{5}{6}{y\lbrack s\rbrack}} + {\frac{3}{2}{y\left\lbrack {s \pm e_{i}} \right\rbrack}} - {\frac{1}{2}{y\left\lbrack {s \pm {2e_{i}}} \right\rbrack}} + {\frac{1}{12}{y\left\lbrack {s \pm {3e_{i}}} \right\rbrack}}} \right)} - {\partial_{i}{y\lbrack s\rbrack}}} \cong {\frac{1}{20}{\partial_{i}^{5}{y\lbrack s\rbrack}}}} & (46) \\ {{{Equation}\quad (24)}:} & \quad \\ {{{\pm \left( {{{- \frac{1}{3}}{y\left\lbrack {s \mp e_{i}} \right\rbrack}} - {\frac{1}{2}{y\lbrack s\rbrack}} + {y\left\lbrack {s \pm e_{i}} \right\rbrack} - {\frac{1}{6}{y\left\lbrack {s \pm {2e_{i}}} \right\rbrack}}} \right)} - {\partial_{i}{y\lbrack s\rbrack}}} \cong {{\mp \frac{1}{12}}{\partial_{i}^{4}{y\lbrack s\rbrack}}}} & (47) \\ {{{Equation}\quad (25)}:} & \quad \\ {{{\pm \left( {{{- \frac{25}{12}}{y\lbrack s\rbrack}} + {4{y\left\lbrack {s \pm e_{i}} \right\rbrack}} - {3{y\left\lbrack {s \pm {2e_{i}}} \right\rbrack}} + {\frac{4}{3}{y\left\lbrack {s \pm {3e_{i}}} \right\rbrack}} - {\frac{1}{4}{y\left\lbrack {s \pm {4e_{i}}} \right\rbrack}}} \right)} - {\partial_{i}{y\lbrack s\rbrack}}} \cong {{- \frac{1}{5}}{\partial_{i}^{5}{y\lbrack s\rbrack}}}} & (48) \\ {{{Equation}\quad (26)}:} & \quad \\ {{{\pm \left( {{{- \frac{11}{6}}{y\lbrack s\rbrack}} + {3{y\left\lbrack {s \pm e_{i}} \right\rbrack}} - {\frac{3}{2}{y\left\lbrack {s \pm {2e_{i}}} \right\rbrack}} + {\frac{1}{3}{y\left\lbrack {s \pm {3e_{i}}} \right\rbrack}}} \right)} - {\partial_{i}{y\lbrack s\rbrack}}} \cong {{\pm \frac{1}{4}}{\partial_{i}^{4}{y\lbrack s\rbrack}}}} & (49) \end{matrix}$

[0122] Discussion

[0123] The multilinear and multicubic interpolation functions (Equations 9 and 13) are obtained by applying one-dimensional interpolation in each dimension separately. For example, applying linear interpolation successively to x₁, x₂, . . . x_(N), yields a multilinear interpolation function of the form $\begin{matrix} {{{y\lbrack x\rbrack} \cong {y_{I}\lbrack x\rbrack}} = {\sum\limits_{{{p:\quad p_{j}} = 0},{1{({j = {1\quad \ldots \quad N}})}}}{a_{p}{\prod\limits_{j = {1\quad \ldots \quad N}}\left( x_{j} \right)^{p_{j}}}}}} & (50) \end{matrix}$

[0124] wherein the 2^(N) coefficients a_(p) are determined from the corresponding 2^(N) point-matching conditions, Equation 8. Substituting y₁[x] from Equation 50 into Equation 8, yields a set of 2^(N) equations that can be solved for the a_(p) coefficients. a_(p) will evidently be a linear combination of the constraint values y[s] appearing in Equation 8; hence substitution of the solution in Equation 50 yields a expression for y₁[x] as a linear combination of the y[s] constraints, as expressed in Equation 9; wherein the u_(s)[x] terms are multilinear functions of x comprising the same monomial terms appearing in Equation 50.

[0125] Rather than solving for the a_(p) coefficients explicitly, the basis functions u_(s)[x] are obtained by direct substitution of Equation 9 into Equation 8 (with x=s′), $\begin{matrix} \begin{matrix} {{{\sum\limits_{{{s:\quad s_{j}} = 0},{1{({j = {1\quad \ldots \quad N}})}}}{{u_{s}\left\lbrack s^{\prime} \right\rbrack}{y\lbrack s\rbrack}}} = {y\left\lbrack s^{\prime} \right\rbrack}};} & {{s_{j}^{\prime} = 0},{1;}} & {j = {1\quad \ldots \quad N}} \end{matrix} & (51) \end{matrix}$

[0126] This applies to any function y; hence the basis functions satisfy the condition $\begin{matrix} \begin{matrix} {{u_{s}\left\lbrack s^{\prime} \right\rbrack} = \left\{ {\begin{matrix} {1,} & {s = s^{\prime}} \\ 0 & {s \neq s^{\prime}} \end{matrix};} \right.} & {s_{j},{s_{j}^{\prime} = 0},{1;}} & {j = {1\quad \ldots \quad N}} \end{matrix} & (52) \end{matrix}$

[0127] u_(s)[x] is a 2^(N)-term multilinear function (similar to Equation 50) whose coefficients are determined by the 2^(N) conditions defined by Equation 52. (There are 2^(N) distinct s′ values in Equation 52.) Based on the symmetry of Equation 52, the following condition holds for any j=1 . . . . N:

u _(s) [x]| _(s) _(j) _(←1−s) _(j) =u _(s) [x]| _(x) _(j) _(←1−x) _(j)   (53)

[0128] Thus, it suffices to consider the case s=0. Given the basis function u₀[x], Equation 53 can be applied to obtain u_(s)[x] for any s(s_(j)=0,1; j=1 . . . N). Assuming multiplicative separability of u₀[x] in x₁, x₂, . . . x_(N), the following result is readily obtained from Equation 52: $\begin{matrix} {{u_{0}\lbrack x\rbrack} = {\prod\limits_{j = {1\quad \ldots \quad N}}\left( {1 - x_{j}} \right)}} & (54) \end{matrix}$

[0129] and application of Equation 53 yields the result, Equation 10.

[0130] The methodology outlined above can also be applied to multicubic interpolation. In this case, the interpolation function has a form similar to Equation 50, except that p_(j) ranges from 0 to 3: $\begin{matrix} {{{y\lbrack x\rbrack} \cong {y_{I}\lbrack x\rbrack}} = {\sum\limits_{{p:\quad p_{j}} = {0\quad \ldots \quad 3\quad {({j = {1\quad \ldots \quad N}})}}}{a_{p}{\prod\limits_{j = {1\quad \ldots \quad N}}\left( x_{j} \right)^{p_{j}}}}}} & (55) \end{matrix}$

[0131] This expression, together with the constraints defined by Equation 12, implies an interpolation function having the form of Equation 13 wherein the basis functions u_(k,s)[x] comprise the same monomials appearing in Equation 54. The defining conditions for u_(k,s)[x] are $\begin{matrix} {{\prod\limits_{j = {1\ldots \quad N}}\quad {\partial_{j}^{k_{j}^{\prime}}{u_{k,s}\left\lbrack s^{\prime} \right\rbrack}}} = \left\{ {{\begin{matrix} {1,} & {k^{\prime} = {{k\quad {and}\quad s^{\prime}} = s}} \\ {0,} & {k^{\prime} \neq {k\quad {or}\quad s^{\prime}} \neq s} \end{matrix};k_{j}^{\prime}},k_{j},s_{j}^{\prime},{s_{j} = 0},{1;\quad {j = {1\quad \ldots \quad N}}}} \right.} & (56) \end{matrix}$

[0132] The basis functions satisfy the symmetry conditions,

u _(k,s) [x]| _(s) _(j) _(←1−s) _(j) =(−1)^(k) ^(_(j)) u _(k,s) [x]| _(x) _(j) _(←1−x) _(j)   (57)

[0133] Hence, given the basis functions u_(k,0)[x], all the other basis functions can be determined by application of Equation 57. Assuming multiplicative separability of u_(k,0)[x] in x₁, x₂, . . . x_(N), yields: $\begin{matrix} {{u_{k,0}\lbrack x\rbrack} = {\prod\limits_{j = {1\ldots \quad N}}{f_{k_{j}}\left\lbrack x_{j} \right\rbrack}}} & (58) \end{matrix}$

[0134] wherein ƒ is defined by Equation 15; and application of Equation 57 then yields Equation 14.

[0135] The starting point for reduced-cubic interpolation is the constraint conditions, Equations 16, which involve first derivative matching but do not involve the mixed first derivatives appearing in Equation 12. Since equation 16 defines (1+N)2^(N) constraints, an interpolation function is needed that has this same number of free parameters. The following functional form meets this criterion: $\begin{matrix} {{y_{1}\lbrack x\rbrack} = {\sum\limits_{{{p\text{:}p_{j}} = 0},{1{({j = {1\ldots \quad N}})}}}\quad \left( {\left( {a_{p} + {\sum\limits_{j = {1\ldots \quad N}}{b_{j,p}\left( x_{j} \right)}^{2}}} \right){\prod\limits_{j = {1\ldots \quad N}}\left( x_{j} \right)^{p_{j}}}} \right)}} & (59) \end{matrix}$

[0136] Equations 16 and 59 imply that y₁[x] can be represented as a linear combination of the constraint values y[s] and ∂_(i)y[s], as represented in Equation 17; wherein the basis functions u_(s)[x] and v_(i,s)[x] comprise the same monomials that appear in Equation 59.

[0137] After back-substituting Equation 17 in Equation 16 and matching corresponding constraint coefficients, the following defining conditions for u_(s)[x] and v_(i,s)[x] are obtained, $\begin{matrix} {\quad {{u_{s}\left\lbrack s^{\prime} \right\rbrack} = \left\{ {{\begin{matrix} {1,} & {s^{\prime} = s} \\ {0,} & {s^{\prime} \neq s} \end{matrix}\quad {v_{i,s}\left\lbrack s^{\prime} \right\rbrack}} = {{0\quad {\partial_{i^{\prime}}{u_{s}\left\lbrack s^{\prime} \right\rbrack}}} = {{0\quad {\partial_{i^{\prime}}{v_{i,s}\left\lbrack s^{\prime} \right\rbrack}}} = \left\{ {{\begin{matrix} {1,} & {i^{\prime} = {{i\quad {and}\quad s^{\prime}} = s}} \\ {0,} & {i^{\prime} \neq {i\quad {or}\quad s^{\prime}} \neq s} \end{matrix}\quad s_{j}^{\prime}},{s_{j} = 0},{1;\quad i^{\prime}},i,{j = {1\quad \ldots \quad N}}} \right.}}} \right.}} & (60) \end{matrix}$

[0138] The basis functions satisfy the following symmetry relationships, $\begin{matrix} {{{{u_{s}\lbrack x\rbrack}{_{S_{j}}{{->{1 - s_{j}}} = {u_{s}\lbrack x\rbrack}}}_{x_{j}}}->{1 - x_{j}}}{{\left. {v_{i,s}\lbrack x\rbrack} \right|_{S_{j}}->{1 - s_{j}}} = \left\{ \begin{matrix} {{v_{i,s}\lbrack x\rbrack}{_{x_{j}}{{->{1 - {x_{j}^{\prime}\quad i}}} = j}}} \\ {{- {v_{i,s}\lbrack x\rbrack}}{_{x_{j}}{->{{1 - {x_{j}^{\prime}\quad i}} \neq j}}}} \end{matrix} \right.}} & (61) \end{matrix}$

[0139] The following functions satisfy Equation 60 with s=0, $\begin{matrix} {{{u_{0}\lbrack x\rbrack} = {\left( {\prod\limits_{j = {1\ldots \quad N}}\left( {1 - x_{j}} \right)} \right)\left( {1 + {\sum\limits_{j = {1\ldots \quad N}}{x_{j}\left( {1 - {2x_{j}}} \right)}}} \right)}}{{v_{i,0}\lbrack x\rbrack} = {\left( {\prod\limits_{j = {1\ldots \quad N}}\left( {1 - x_{j}} \right)} \right){x_{i}\left( {1 - x_{i}} \right)}}}} & (62) \end{matrix}$

[0140] and applying Equations 61, 18 are obtained.

[0141] Global continuity of Y₁[X] can be demonstrated for multilinear interpolation as follows: If Equation 9 is evaluated on one of the interpolation cell's hyperplane boundaries, e.g. at x₁=0, then the computed value y₁[x] will depend only on y[s] values sampled in the hyperplane (i.e., with s₁=0). Hence the untransformed interpolation function Y₁ ^((m))[X] evaluated on the hyperplane X₁=X₁ ^((m) ^(₁) ⁾ (on the boundary of cell m), will depend only on Y[X] values sampled in the hyperplane. Another interpolation function Y₁ ^((m−e) ^(₁) ⁾[X] defined on adjacent cell m−e₁, will similarly have a functional form in the hyperplane X₁=X₁ ^((m) ^(₁) ⁾ that is defined entirely by the same Y[X] values; hence the two functions Y₁ ^((m))[X] and Y₁ ^((m−e) ^(₁) ⁾[X] will be matched at the common boundary between cell m and cell m−e₁. The same condition applies to all bounding hyperplanes between interpolation cells; hence the global interpolation function Y₁[X] is everywhere continuous.

[0142] The above line of reasoning can be extended to show that all of the interpolation algorithms outlined in Section 3 yield globally continuous interpolation functions, and that multicubic interpolation yields an interpolation function that is also globally smooth. The reduced-cubic interpolation function, Equation 17, is not globally smooth; but it is smooth at the grid points because the function derivatives are constrained by Equation 16 to be matched between adjacent grid cells.

[0143] Assuming that no approximations are made in the interpolation constraints, the interpolation error y₁[x]−y[x] will be identically zero (by construction) when y[x] is any polynomial comprising the same monomial terms that are in y₁[x]. Thus, to determine an error estimate, it is appropriate to limit consideration to the lowest-order monomial terms in y[x] that are not in y₁[x]. For example, the multilinear function y₁[x] defined by Equation 50 includes all monomials up to order 1; thus the multilinear interpolation error is dominated by monomials of order 2 that are not in the multilinear expansion. There are N such monomials: (x_(j))², j=1 . . . N. Considering, for example, the monomial function

y[x]=(x₁)²  (63a)

[0144] the terms y[s] in Equation 9 are $\begin{matrix} {{y\lbrack s\rbrack} = \left\{ \begin{matrix} {0,{s_{1} = 0}} \\ {1,{s_{1} = 1}} \end{matrix} \right.} & \left( {63b} \right) \end{matrix}$

[0145] With this substitution, Equation 9 reduces to y₁[x]=x₁, $\begin{matrix} {{y_{l}\lbrack x\rbrack} = {{\sum\limits_{{{s\text{:}s_{1}} = {{1s_{j}} = 0}},{1{({j = {2\ldots \quad N}})}}}{u_{s}\lbrack x\rbrack}} = {{\sum\limits_{{s_{2} = 0},1}{\cdots {\sum\limits_{{s_{N} = 0},1}{u_{({1,s_{2},{\ldots \quad s_{N}}})}\lbrack x\rbrack}}}}\quad = {{\sum\limits_{{s_{2} = 0},1}{\cdots {\sum\limits_{{s_{N} = 0},1}{x_{1}{\prod\limits_{j = {2\quad \ldots \quad N}}\left( {1 - x_{j}^{\prime}} \right)}}}}} = {{x_{1}{\prod\limits_{j = {2\quad \ldots \quad N}}{\sum\limits_{{s_{j} = 0},1}\left( {1 - x_{j}^{\prime}} \right)}}}\quad = {{x_{1}{\prod\limits_{j = {2\quad \ldots \quad N}}\left( {\left( {1 - x_{j}} \right) + x_{j}} \right)}} = x_{1}}}}}}} & \left( {63c} \right) \end{matrix}$

[0146] The interpolation error, for y[x] defined by Equation 63a, is

y ₁ [x]−y[x]=x ₁(1−x ₁)  (63d)

[0147] Generalizing this to an arbitrary function y[x] defined by a Taylor series (Equation 35), the lowest-order interpolation error for multilinear interpolation is given by Equation 38.

[0148] A similar procedure yields the interpolation error estimates for multicubic interpolation (Equation 39), reduced-cubic interpolation with exact derivatives (Equation 40), and reduced-cubic interpolation with point matching (Equation 42). Each of these methods has the property that the interpolation error is zero for any monomial included in y₁[x]. For example, in the case of multicubic interpolation, the interpolation function y₁[x] defined by Equation 55 includes all monomials of order 3 or less, and the only order-4 monomials not included in the multicubic expansion are (x_(j))⁴, j=1 . . . N. Thus the multicubic interpolation error, Equation 39, can be estimated by considering the special case y[x]=(x₁)⁴ (analogous to Equation 63a). The reduced-cubic expansion, Equation 59, also includes all monomials of order 3 or less, but the order-4 monomials not included in Equation 59 include the functions (x_(j))⁴ and also (x_(i))²(x_(j))²; i≠j. Functions y[x] of both forms must be considered in deriving Equations 40 and 42.

[0149] Equation 41 is a special case because the interpolation algorithm relies on an additional approximation, the derivative estimate (Equation 19), which is only accurate to order 2. (In this case, the y₁ derivatives are only constrained to match finite-difference y derivatives at the grid points.) The lowest-order monomials for which Equation 19 is in error are: (x_(j))³, j=1 . . . N; thus the interpolation error estimate in Equation 41 is determined by considering functions y[x] of this form. However, if the higher-order derivative estimator, Equation 22, is used, the accuracy estimate in Equation 40 is unchanged because Equation 22 has accuracy order 4 (see Equation 45).

[0150] Comparison

[0151] The primary advantages and disadvantages of the interpolation algorithms considered above are summarized as follows:

[0152] The prior art multilinear interpolation (Equation 9) is the most computationally efficient algorithm, requiring 2^(N) summation terms per interpolation. The interpolation function is globally continuous, but is generally not smooth at the grid cell boundaries. Multilinear interpolation only has accuracy order 1 (Equation 38).

[0153] Full, multicubic interpolation (Equation 13) (also prior art) has accuracy order 3 (Equation 39). (This assumes accurate derivatives are used.) The multicubic interpolation function is globally continuous and smooth. However, the algorithm is very inefficient, requiring 4^(N) summation terms.

[0154] Reduced-cubic interpolation with exact derivatives (Equation 17) also has accuracy order 3 (Equation 40), but requires only (1+N)2^(N) summation terms. The interpolation function is globally continuous. It is not generally smooth, except at the grid points. A disadvantage of this method (as well as the multicubic interpolation method considered here) is that it requires derivative information.

[0155] The need for exact derivatives can be eliminated by using finite-difference derivatives, but there are tradeoffs. If a simple, centered-difference derivative estimator (Equation 19) is used, the interpolation accuracy is reduced to order 2 (Equation 41). A higher-order derivative estimator (Equation 22) may be used to restore order-3 accuracy, but then the number of summation terms is increased to: (1+2N)2^(N).

[0156] The above tradeoff can be circumvented by using the reduced-cubic interpolation method with point matching (Equation 28). This method does not require derivatives; it has accuracy order 3 (Equation 42); and the required number of summation terms is (1+N)2^(N). However, the accuracy error is typically much larger (e.g., by an order of magnitude) than that of the derivative-matching methods (assuming that accurate derivatives are used). Another possible disadvantage is that the interpolation function may have poorer smoothness characteristics compared to the other reduced-cubic methods. (The point-matching interpolation function is generally not smooth between grid cells, even at the grid points.) 

What is claimed is:
 1. A method for optically inspecting a semiconductor wafer, the method comprising: generating a database consisting of a plurality of interpolation points, each interpolation point providing a mapping between a theoretical optical response characteristic for the semiconductor wafer and a corresponding set of N parameters with N being greater than 2; focusing a beam of radiation on the semiconductor wafer and measuring the resulting diffraction to generate an empirical optical response characteristic; and generating an interpolated optical response characteristic to match the empirical spectral response, where the interpolated optical response characteristic is calculated using a reduced multicubic function in which all derivative terms are simple, with the reduced multicubic function being substantially continuous and substantially matching the theoretical optical response characteristic at each interpolation point.
 2. A method as recited in claim 1 where the total number of database quantities used to generate the interpolated optical response characteristic is less than 4^(N).
 3. A method as recited in claim 1 where the total number of database quantities used to generate the interpolated optical response characteristic is (1+N)2^(N).
 4. A method as recited in claim 1 where the derivative terms in the reduced multicubic function are generated as finite difference approximations.
 5. A method as recited in claim 1 where the derivative terms in the reduced multicubic function are retrieved from the database.
 6. A method of evaluating a sample comprising; generating a database consisting of a plurality of data points, each point defined by a parameter set consisting of specific parameter values and an associated optical characteristic function value sampled at the particular parameter set; illuminating the sample with a probe beam and measuring the change induced in the probe beam resulting from the interaction with the sample and generating output signals in response thereto; comparing the output signals with the points in the database using a fitting algorithm and interpolation model, wherein the interpolation model computes a substantially continuous interpolated optical characteristic function at specific interpolation parameter sets, and wherein the interpolation parameter sets are not limited to, but are computed from, those of the data points in the database, with the interpolated optical characteristic function substantially matching the optical response characteristic at each database point, said comparing being repeated until a best fit parameter set is identified as the measured parameter values of the sample; where the number of database quantities used for the computation at each interpolation parameter set is less than 4^(N), where N is equal to the number of parameters; and where the interpolation accuracy order is higher than first-order.
 7. A method as recited in claim 6 where the total number of database quantities used for the computation at each interpolation parameter set is (1+N)2^(N).
 8. A method for optically inspecting a semiconductor wafer, the method comprising: focusing a beam of radiation on the semiconductor wafer and measuring the resulting diffraction to generate an empirical optical response characteristic; interpolating a function Y[X] to generate a theoretical optical response characteristic, where X is a vector of N parameters with N being greater than 2, the interpolation process comprising: locating an interpolation cell within a database of interpolation points, where each interpolation point is a mapping between a value for the function Y and a corresponding vector of N parameters, the interpolation cell including X on a dimension-by-dimension basis; retrieving the interpolation points corresponding to each vertex of the interpolation cell; and using the retrieved interpolation points to evaluate a reduced multicubic function in which all derivative terms are simple.
 9. A method as recited in claim 8 where the derivative terms in the reduced multicubic function are generated as finite difference approximations.
 10. A method as recited in claim 9 where the derivative terms in the reduced multicubic function are retrieved from the database.
 11. A method for optically inspecting a semiconductor wafer, the method comprising: generating a database consisting of a plurality of interpolation points, each interpolation point providing a mapping between a theoretical optical response characteristic for the semiconductor wafer and a corresponding set of N parameters with N being greater than 2; focusing a beam of radiation on the semiconductor wafer and measuring the resulting diffraction to generate an empirical optical response characteristic; and generating an interpolated optical response characteristic to match the empirical spectral response, where the interpolated optical response characteristic is calculated using a polynomial function in which all derivative terms are simple, with the polynomial function being substantially continuous and substantially matching the theoretical optical response characteristic at each interpolation point.
 12. A method as recited in claim 11 where the derivative terms in the reduced multicubic function are generated as finite difference approximations.
 13. A method as recited in claim 12 where the derivative terms in the reduced multicubic function are retrieved from the database. 